///*
// Grid system
// -------------------------------------------------- */

// Centered container element
.container-fixed() {
	margin-right: auto;
	margin-left: auto;
}

#grid {
	///* 触发栅格化函数 */
	.core(@gridColumnWidth, @gridGutterWidth) {
		///* 栅格每个单元公用定义 */
		.base() {
			display: inline;
			float: left;
			margin-left: @gridGutterWidth;
		}
		///* 栅格每个单元单独定义 */
		.span(@columns) {
			width: (@gridColumnWidth * @columns) + (@gridGutterWidth * (@columns - 1));
	    }
		///* 栅格每个单元单独定义 */
		.input(@columns) {
			width: (@gridColumnWidth * @columns) + (@gridGutterWidth * (@columns - 1)) - (@inputBorderWidth + @inputPadding) * 2;
	    }
		///* 栅格每个单元单独定义 */
		.offset(@columns) {
			margin-left: (@gridColumnWidth * @columns) + (@gridGutterWidth * (@columns + 1));
	    }
		///* 公用继承函数 */
		.extendX(@index) {
			(~"*/.span@{index},/*") { extend: 1; }
		}
		///* 单独定义函数 */
		.spanX(@index) {
			(~".span@{index}") {
				.span(@index);
			}
			(~"input.span@{index}, textarea.span@{index}") {
				.input(@index);
			}
		}
		///* 单独定义函数 */
		.offsetX(@index) {
			(~".offset@{index}") {
				.offset(@index);
			}
		}
		///* 触发继承函数 */
		.forextend() {
			(~"/*") { extend: 1; }
			
			.for(1, 12, cb-20120823-2318-1);
			
			(~"*/.span-base") {
				.base();
			}
		}
		.init() {
			.forextend();
			.container {
				.span(12);
			}
			.for(1, 12, cb-20120823-2318-2);
			.row {
				margin-left: @gridGutterWidth * -1;
			}
		}
		.init();
	}
	
	///* 触发栅格化函数 */
	.fluid (@fluidGridColumnWidth, @fluidGridGutterWidth) {
		///* 栅格每个单元公用定义 */
		.base() {
			display: inline;
			float: left;
			margin-left: @fluidGridGutterWidth;
			*margin-left: @fluidGridGutterWidth - (.5 / @gridRowWidth * 100 * 1%);
		}
		///* 栅格每个单元单独定义 */
		.span(@columns) {
			width: (@fluidGridColumnWidth * @columns) + (@fluidGridGutterWidth * (@columns - 1));
			*width: (@fluidGridColumnWidth * @columns) + (@fluidGridGutterWidth * (@columns - 1)) - (.5 / @gridRowWidth * 100 * 1%);
	    }
		///* 栅格每个单元单独定义 */
		.offset(@columns) {
			margin-left: (@fluidGridColumnWidth * @columns) + (@fluidGridGutterWidth * (@columns - 1)) + (@fluidGridGutterWidth*2);
			margin-left: (@fluidGridColumnWidth * @columns) + (@fluidGridGutterWidth * (@columns - 1)) - (.5 / @gridRowWidth * 100 * 1%) + (@fluidGridGutterWidth*2) - (.5 / @gridRowWidth * 100 * 1%);
	    }
		///* 公用继承函数 */
		.extendX(@index) {
			(~"*/.row-fluid .span@{index},/*") { extend: 1; }
		}
		///* 单独定义函数 */
		.spanX(@index) {
			(~".row-fluid .span@{index}") {
				.span(@index);
			}
		}
		///* 单独定义函数 */
		.offsetX(@index) {
			(~".row-fluid .offset@{index}") {
				.offset(@index);
			}
		}
		///* 触发继承函数 */
		.forextend() {
			(~"/*") { extend: 1; }
			
			.for(1, 12, cb-20120823-2318-3);
			
			(~"*/.row-fluid .span-base") {
				.base();
			}
		}
		.init() {
			.forextend();
			.container-fluid {
				.span(12);
			}
			.for(1, 12, cb-20120823-2318-4);
			.row-fluid {
				display: block;
				margin-left: @fluidGridGutterWidth * -1;
			}
		}
		.init();
	}
}
///* 继承回调函数 */
.for(cb-20120823-2318-1, @index) {
	#grid > .core > .extendX(@index);
}
///* 单独定义回调函数 */
.for(cb-20120823-2318-2, @index) {
	#grid > .core > .spanX(@index);
	#grid > .core > .offsetX(@index);
}
///* 继承回调函数 */
.for(cb-20120823-2318-3, @index) {
	#grid > .fluid > .extendX(@index);
}
///* 单独定义回调函数 */
.for(cb-20120823-2318-4, @index) {
	#grid > .fluid > .spanX(@index);
	#grid > .fluid > .offsetX(@index);
}